# Be sure to restart your server when you modify this file.

ActiveSupport::Inflector.inflections do |inflect|

  ### limpa configuracoes padrao EN-US
  inflect.clear

  ### regras do brazilian-rails
  inflect.plural(/$/, 's')
  inflect.plural(/(s)$/i, '\1')
  #inflect.plural(/^(paí)s$/i, '\1ses')
  inflect.plural(/(z|r)$/i, '\1es')
  inflect.plural(/al$/i, 'ais')
  inflect.plural(/el$/i, 'eis')
  inflect.plural(/ol$/i, 'ois')
  inflect.plural(/ul$/i, 'uis')
  inflect.plural(/([^aeou])il$/i, '\1is')
  inflect.plural(/m$/i, 'ns')
  #inflect.plural(/^(japon|escoc|ingl|dinamarqu|fregu|portugu)ês$/i, '\1eses')
  #inflect.plural(/^(|g)ás$/i, '\1ases')

  # Com acentos
  #inflect.plural(/ão$/i, 'ões')
  #inflect.plural(/^(irm|m)ão$/i, '\1ãos')
  #inflect.plural(/^(alem|c|p)ão$/i, '\1ães')

  # Sem acentos
  inflect.plural(/ao$/i, 'oes')
  inflect.plural(/^(irm|m)ao$/i, '\1aos')
  inflect.plural(/^(alem|c|p)ao$/i, '\1aes')

  inflect.singular(/([^ê])s$/i, '\1')
  #inflect.singular(/^(á|gá|paí)s$/i, '\1s')
  inflect.singular(/(r|z)es$/i, '\1')
  inflect.singular(/([^p])ais$/i, '\1al')
  inflect.singular(/eis$/i, 'el')
  inflect.singular(/ois$/i, 'ol')
  inflect.singular(/uis$/i, 'ul')
  inflect.singular(/(r|t)is$/i, '\1il')
  inflect.singular(/ns$/i, 'm')
  inflect.singular(/sses$/i, 'sse')
  #inflect.singular(/^(.*[^s]s)es$/i, '\1')
  #inflect.singular(/ães$/i, 'ão')
  inflect.singular(/aes$/i, 'ao')
  #inflect.singular(/ãos$/i, 'ão')
  inflect.singular(/aos$/i, 'ao')
  #inflect.singular(/ões$/i, 'ão')
  inflect.singular(/oes$/i, 'ao')
  #inflect.singular(/(japon|escoc|ingl|dinamarqu|fregu|portugu)eses$/i, '\1ês')
  #inflect.singular(/^(g|)ases$/i, '\1ás')

  #inflect.uncountable %w( tórax tênis ônibus lápis fênix )

  ### models formados por nomes compostos
  { 'componente_empreendimento' => 'componentes_empreendimento',
    'documento_apresentado' => 'documentos_apresentados',
    'documento_tipo_projeto' => 'documentos_tipos_projeto',
    'informacao_usuario' => 'informacoes_usuarios',
    'documento_fiscal' => 'documentos_fiscais',
    'opcao_dipj' => 'opcoes_dipj',
    'pessoa_juridica' => 'pessoas_juridicas',
    'receita_federal' => 'receitas_federais',
    'setor_economico' => 'setores_economicos',
    'tipo_precondicao' => 'tipos_precondicao',
    'tramitacao' => 'tramitacoes',
    'unidade_medida' => 'unidades_medida'
   }.each_pair do |s, p|
    inflect.irregular s, p
    inflect.irregular s.camelize, p.camelize
  end

  # models em ingles
  inflect.irregular 'user', 'users'
  inflect.irregular 'session', 'sessions'

end
